package main

import (
	"fmt"
)

type myStruct struct {
	name   bool
	userid int64
}

var (
	structZero    myStruct
	intZero       int
	int32Zero     int32
	int64Zero     int64
	uintZero      uint
	uint8Zero     uint8
	uint32Zero    uint32
	uint64Zero    uint64
	byteZero      byte
	boolZero      bool
	float32Zero   float32
	float64Zero   float64
	stringZero    string
	funcZero      func(int) int
	byteArrayZero [5]byte
	boolArrayZero [5]bool
	byteSliceZero []byte
	boolSliceZero []bool
	mapZero       map[string]bool
	interfaceZero interface{}
	chanZero      chan int
	pointerZero   *int
)

func main() {
	fmt.Println("structZero:", structZero)
	fmt.Println("intZero:", intZero)
	fmt.Println("int32Zero:", int32Zero)
	fmt.Println("int64Zero:", int64Zero)
	fmt.Println("uintZero:", uintZero)
	fmt.Println("uint8Zero:", uint8Zero)
	fmt.Println("uint32Zero:", uint32Zero)
	fmt.Println("uint64Zero:", uint64Zero)
	fmt.Println("byteZero:", byteZero)
	fmt.Println("boolZero:", boolZero)
	fmt.Println("float32Zero:", float32Zero)
	fmt.Println("float64Zero:", float64Zero)
	fmt.Println("stringZero:", stringZero)
	fmt.Println("funcZero:", funcZero)
	fmt.Println("funcZero == nil?:", funcZero == nil)
	fmt.Println("byteArrayZero:", byteArrayZero)
	fmt.Println("boolArrayZero:", boolArrayZero)
	fmt.Println("byteSliceZero:", byteSliceZero)
	fmt.Println("byteSliceZero`s len?:", len(byteSliceZero))
	fmt.Println("byteSliceZero`s cap?:", cap(byteSliceZero))
	fmt.Println("byteSliceZero == nil?:", byteSliceZero == nil)
	fmt.Println("boolSliceZero:", boolSliceZero)
	fmt.Println("mapZero:", mapZero)
	fmt.Println("mapZero`s len?:", len(mapZero))
	fmt.Println("mapZero == nil?:", mapZero == nil)
	fmt.Println("interfaceZero:", interfaceZero)
	fmt.Println("interfaceZero == nil?:", interfaceZero == nil)
	fmt.Println("chanZero:", chanZero)
	fmt.Println("chanZero == nil:", chanZero == nil)
	fmt.Println("pointerZero:", pointerZero)
	fmt.Println("pointerZero == nil?:", pointerZero == nil)
}
